<?php
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
class Adminimage_model extends Model {

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }
    public function thumbnail($inputFileName, $maxSize = 100)
    {
        $info = getimagesize($inputFileName);

        $type = isset($info['type']) ? $info['type'] : $info[2];

        // Check support of file type
        if ( !(imagetypes() & $type) )
        {
            // Server does not support file type
            return false;
        }

        $width  = isset($info['width'])  ? $info['width']  : $info[0];
        $height = isset($info['height']) ? $info['height'] : $info[1];

        // Calculate aspect ratio
        $wRatio = $maxSize / $width;
        $hRatio = $maxSize / $height;

        // Using imagecreatefromstring will automatically detect the file type
        $sourceImage = imagecreatefromstring(file_get_contents($inputFileName));

        // Calculate a proportional width and height no larger than the max size.
        if ( ($width <= $maxSize) && ($height <= $maxSize) )
        {
            // Input is smaller than thumbnail, do nothing
            return $sourceImage;
        }
        elseif ( ($wRatio * $height) < $maxSize )
        {
            // Image is horizontal
            $tHeight = ceil($wRatio * $height);
            $tWidth  = $maxSize;
        }
        else
        {
            // Image is vertical
            $tWidth  = ceil($hRatio * $width);
            $tHeight = $maxSize;
        }

        $thumb = imagecreatetruecolor($tWidth, $tHeight);

        if ( $sourceImage === false )
        {
            // Could not load image
            return false;
        }

        // Copy resampled makes a smooth thumbnail
        imagecopyresampled($thumb, $sourceImage, 0, 0, 0, 0, $tWidth, $tHeight, $width, $height);
        imagedestroy($sourceImage);

        return $thumb;
    }

    /**
     * Save the image to a file. Type is determined from the extension.
     * $quality is only used for jpegs.
     * Author: mthorn.net
     */
    public function imageToFile($im, $fileName, $quality = 80)
    {
        if ( !$im || file_exists($fileName) )
        {
            return false;
        }

        $ext = strtolower(substr($fileName, strrpos($fileName, '.')));

        switch ( $ext )
        {
            case '.gif':
                imagegif($im, $fileName);
                break;
            case '.jpg':
            case '.jpeg':
                imagejpeg($im, $fileName, $quality);
                break;
            case '.png':
                imagepng($im, $fileName);
                break;
            case '.bmp':
                imagewbmp($im, $fileName);
                break;
            default:
                return false;
        }

        return true;
    }



    public function addGalleryImages($files, $sectid, $sect)
    {
        error_reporting(E_ALL);
        $uploaddir = 'images/gallery/';
        $target_large_path = 'images/gallery/large/';
        $target_thumb_path = 'images/gallery/thumbs/';

        if(isset($files))
        {
            $errors= array();

            for($i=0; $i<count($files['txtGallery']['name']); $i++)
            {
                $tmp_name = $files["txtGallery"]["tmp_name"][$i];
                $name = $files["txtGallery"]["name"][$i];

                $uploadfile = $uploaddir . basename($name);
                $target_thumb_file = $target_thumb_path . basename($name);
                $target_large_file = $target_large_path . basename($name);

                if (move_uploaded_file($tmp_name, $uploadfile))
                {

                    $large_image = $this->thumbnail($uploadfile, 550);
                    $this->imageToFile($large_image, $target_large_file);

                    $large_image = $this->thumbnail($uploadfile, 100);
                    $this->imageToFile($large_image, $target_thumb_file);

                    unlink($uploadfile);

                    $sql = "INSERT INTO tbl_gallery(section, sect_id, filename, status)
                            VALUES('" . $sect . "', " . $sectid . ", '" . basename($name) . "', '1')";
                    $qry = $this->db->query($sql);

                } else {
                    echo "Error: Couldn't uplaod the image ".$name.".<br/>";
                }
            }
        }
    }
}
?>